$(function () {
    // 手机号正则
    var phoneReg = /^[1][3,4,5,7,8][0-9]{9}$/;
    // 验证码
    var codeReg = /^[0-9]{6}$/
    // 不输入默认为空
    var curPhone = ''
    var curCode = ''
    var curUser = {};
    function myCheck(value, reg, tip) {
        var text = value;
        // 空
        if (text.replace(/\s/g, '') === "") {
            return `请输入${tip}`
        }
        // 非法
        else if (!reg.test(text)) {
            return `请输入正确的${tip}`
        }
        return " ";
    }
    // 获取随机验证码
    function generateRandomCode() {
        var code = "";
        var characters = "0123456789";
        for (var i = 0; i < 6; i++) {
            var randomIndex = Math.floor(Math.random() * characters.length);
            code += characters.charAt(randomIndex);
        }
        return code;
    }
    // 点击按钮调用函数
    function getCode($this) {
        var timer = null;
        var number = 10;
        $this.prop('disabled', true).addClass('disabled').text(`${number}秒之后重新发送`);
        timer = setInterval(function () {
            if (--number) {
                $this.text(`${number}秒之后重新发送`);
            } else {
                number = 10;
                $this.removeClass('disabled').text(`重发验证码`).prop('disabled', false);
                clearInterval(timer);
            }
        }, 1000);
    }
    // 手机号输入框失焦
    $('.phone input').on('blur', function () {
        var phone = $(this).val();
        var checkMessage = myCheck(phone, phoneReg, "手机号码");
        if (checkMessage != ' ') {
            // 验证不通过逻辑
            $(this).parent().remove('phoneEmpty').addClass('phoneEmpty');
        } else {
            // 验证通过逻辑
            $(this).parent().removeClass('phoneEmpty');
        }
        $('.phoneError').text(checkMessage);
        // 每次输入完都保存一下当前输入的值
        curPhone = $(this).val();
    })
    // 验证码输入框失焦
    $('.code input').on('blur', function () {
        var code = $(this).val();
        var checkMessage = myCheck(code, codeReg, "验证码");
        if (checkMessage != ' ') {
            // 验证不通过逻辑
            $(this).parent().remove('codeEmpty').addClass('codeEmpty');
        } else {
            // 验证通过逻辑
            $(this).parent().removeClass('codeEmpty');
        }
        $('.codeError').text(checkMessage);
        // 输入完保存当前的信息
        curCode = $(this).val();
    })
    // 验证码按钮事件
    $('.code button').on('click', function () {
        var phoneCheckMessage = myCheck(curPhone, phoneReg, "手机号码");
        if (phoneCheckMessage == ' ') {
            // 手机号输入正确就可以获取验证码
            getCode($('.code button'));
            // ------------------- //
            // 这部分代码后期和可以换成获取真正的验证码
            var testCode = generateRandomCode();
            
            setTimeout(function () {
                layer.alert(
                    '验证码为：' + testCode,
                    { icon: 1, shadeClose: true, title: '验证码', },
                );
                // 把获取到的验证码和手机号绑定到一起生成一个当前用户的对象
                curUser = { username: curPhone, code: testCode };
            }, 3000);
            // ------------------- //
        } else {
            // 如果没有输入就触发一下blur
            $('.phone input').blur()
            layer.msg(
                '请输入正确的手机号',
                { icon: 2, offset: '100px' },
                function () {
                    // $('.phone input').blur()
                    // layer.msg('提示框关闭后的回调');
                }
            );
        }
    })
    // 登录
    $('.login').on('click', function () {
        // 验证一下当前输入框中的手机号是否能通过验证
        var phoneCheck = myCheck(curPhone, phoneReg, "手机号码") != ' ';
        var codeCheck = myCheck(curCode, codeReg, "验证码") != ' ';
        if (phoneCheck || codeCheck) {
            if (phoneCheck) $('.phone input').blur();
            if (codeCheck) $('.code input').blur();
            return false;
        }
        // 验证是否同意协议
        if (!$('input[type=checkbox]').prop('checked')) {
            layer.msg(
                '请先同意用户协议和隐私政策',
                { icon: 2, offset: '100px' },
                function () {
                    // $('.phone input').blur()
                    // layer.msg('提示框关闭后的回调');
                }
            );
            return false;
        }
        // 验证输入框中的信息 和 之前绑定的是否一样  防止获取完验证码又修改手机号
        var inputUser = { username: $('.phone input').val(), code: $('.code input').val(), }
        if (inputUser.username != curUser.username || inputUser.code != curUser.code) {
            layer.msg(
                '手机号或验证码错误',
                { icon: 2, offset: '100px' },
                function () {
                    // $('.phone input').blur()
                    // layer.msg('提示框关闭后的回调');
                }
            );
            return false;
        }

        $.cookie('User',  JSON.stringify(curUser));
        var car = [];
        $.cookie('Car', JSON.stringify(car));
        location.href = '../shop.html';
        return false;
    })
})